/*************************************************************************
> File Name: MyList.h
> Author: icebear
> Mail: 3322366195@qq.com
> Created Time: 2024-08-17 00:30:05
> Description:
************************************************************************/

#ifndef _MYLIST_H_
#define _MYLIST_H_

// #include <list>
#include "GlobalValue.h"

namespace ib
{

    /**
     * @brief
     * size 0x10
     */
    class MyListNodeBase
    {
        MyListNodeBase *node_next_0x0;
        MyListNodeBase *node_prev_0x8;

    public:
    };

    /**
     * @brief
     * size 0x18
     */
    class MyListNodeHeader : public MyListNodeBase
    {
    public:
        size_type list_size_0x10;
    };

    /**
     * @brief
     * size 0x18
     * @tparam T
     */
    template <typename T>
    class MyListNode : public MyListNodeBase
    {
    public:
        // unsigned char storage[sizeof(T)]
        MemBuf<T> nove_val_0x10;
    };

    /**
     * @brief
     * size 0x18
     * @tparam T
     */
    template <typename T>
    class MyListBase
    {
    protected:
        /**
         * @brief
         * size 0x18
         */
        class MyListNodeImpl
        {
        public:
            MyListNodeHeader list_head_0x0;
        };
        MyListNodeImpl list_0x0;
    };

    /**
     * @brief
     * size 0x18
     * @tparam T
     */
    template <typename T>
    class MyList : protected MyListBase<T>
    {
    public:
    };

} // namespace ib

#endif
